/*
 * @Description: 描述
 * @Author: cy
 * @Date: 2024/3/20
 */
let ws = require("express-ws");

let init = (app) => {
  ws(app);

  //websocket长链接--链接个数，比如两个不同的前端标签页
  const wss = [];
  app.ws("/", (ws, req) => {
    console.log("连接成功！");
    // send给客户端发消息
    // on是监听事件
    // message表示服务端传来的数据
    wss.push(ws);
    ws.on("message", (msg) => {
      console.log(msg,wss?.length);
      // 给所有的客户端广播消息
      // console.log(msg);
      // console.log(wss);
      wss.forEach((e) => {
        e.send(msg);
      });
    });

    // close 事件表示客户端断开连接时执行的回调函数
    ws.on("close", function (e) {
      console.log("close connection");
    });
  });
};

module.exports = init;
